﻿using DOHS_WM6.Classes;
using System.Collections.Generic;
using DOHS_WM6.Enumeradores;
using System.Windows.Forms;
using System;

namespace DOHS_WM6.Fichas
{
    public partial class formCondicaoDentaria2 : FormDOHS
    {
        #region Propriedades

        private Dictionary<string, TipoCampo> Campos = new Dictionary<string, TipoCampo>();

        #endregion

        #region Construtor
        public formCondicaoDentaria2()
        {
            InitializeComponent();

            Campos.Add("txtCoroa28", TipoCampo.Coroa);
            Campos.Add("txtCoroa27", TipoCampo.Coroa);
            Campos.Add("txtCoroa26", TipoCampo.Coroa);
            Campos.Add("txtCoroa25", TipoCampo.Coroa);
            Campos.Add("txtCoroa24", TipoCampo.Coroa);
            Campos.Add("txtCoroa23", TipoCampo.Coroa);
            Campos.Add("txtCoroa22", TipoCampo.Coroa);
            Campos.Add("txtCoroa21", TipoCampo.Coroa);
            Campos.Add("txtRaiz28", TipoCampo.Raiz);
            Campos.Add("txtRaiz27", TipoCampo.Raiz);
            Campos.Add("txtRaiz26", TipoCampo.Raiz);
            Campos.Add("txtRaiz25", TipoCampo.Raiz);
            Campos.Add("txtRaiz24", TipoCampo.Raiz);
            Campos.Add("txtRaiz23", TipoCampo.Raiz);
            Campos.Add("txtRaiz22", TipoCampo.Raiz);
            Campos.Add("txtRaiz21", TipoCampo.Raiz);
            Campos.Add("txtTratamento28", TipoCampo.Tratamento);
            Campos.Add("txtTratamento27", TipoCampo.Tratamento);
            Campos.Add("txtTratamento26", TipoCampo.Tratamento);
            Campos.Add("txtTratamento25", TipoCampo.Tratamento);
            Campos.Add("txtTratamento24", TipoCampo.Tratamento);
            Campos.Add("txtTratamento23", TipoCampo.Tratamento);
            Campos.Add("txtTratamento22", TipoCampo.Tratamento);
            Campos.Add("txtTratamento21", TipoCampo.Tratamento);
        }
        #endregion

        #region Metodos

        private void HabilitaBotoes(bool ativo)
        {
            btn0.Enabled = ativo;
            btn1.Enabled = ativo;
            btn2.Enabled = ativo;
            btn3.Enabled = ativo;
            btn4.Enabled = ativo;
            btn5.Enabled = ativo;
            btn6.Enabled = ativo;
            btn7.Enabled = ativo;
            btn8.Enabled = ativo;
            btn9.Enabled = ativo;
            btnA.Enabled = ativo;
            btnB.Enabled = ativo;
            btnC.Enabled = ativo;
            btnD.Enabled = ativo;
            btnE.Enabled = ativo;
            btnF.Enabled = ativo;
            btnG.Enabled = ativo;
            btnP.Enabled = ativo;
            btnT.Enabled = ativo;
        }

        private void ValidacaoCodigoRaiz()
        {
            string codigoCoroa = string.Empty;

            switch (this.txtFocus.Name)
            {
                case "txtRaiz28":
                    codigoCoroa = txtCoroa28.Text;
                    break;
                case "txtRaiz27":
                    codigoCoroa = txtCoroa27.Text;
                    break;
                case "txtRaiz26":
                    codigoCoroa = txtCoroa26.Text;
                    break;
                case "txtRaiz25":
                    codigoCoroa = txtCoroa25.Text;
                    break;
                case "txtRaiz24":
                    codigoCoroa = txtCoroa24.Text;
                    break;
                case "txtRaiz23":
                    codigoCoroa = txtCoroa23.Text;
                    break;
                case "txtRaiz22":
                    codigoCoroa = txtCoroa22.Text;
                    break;
                case "txtRaiz21":
                    codigoCoroa = txtCoroa21.Text;
                    break;
            }

            if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
        }

        private void ValidacaoCodigoTratamento()
        {
            string codigoCoroa = "";
            string codigoRaiz = "";

            switch (txtFocus.Name)
            {
                case "txtTratamento28":
                    codigoCoroa = txtCoroa28.Text;
                    codigoRaiz = txtRaiz28.Text;
                    break;
                case "txtTratamento27":
                    codigoCoroa = txtCoroa27.Text;
                    codigoRaiz = txtRaiz27.Text;
                    break;
                case "txtTratamento26":
                    codigoCoroa = txtCoroa26.Text;
                    codigoRaiz = txtRaiz26.Text;
                    break;
                case "txtTratamento25":
                    codigoCoroa = txtCoroa25.Text;
                    codigoRaiz = txtRaiz25.Text;
                    break;
                case "txtTratamento24":
                    codigoCoroa = txtCoroa24.Text;
                    codigoRaiz = txtRaiz24.Text;
                    break;
                case "txtTratamento23":
                    codigoCoroa = txtCoroa23.Text;
                    codigoRaiz = txtRaiz23.Text;
                    break;
                case "txtTratamento22":
                    codigoCoroa = txtCoroa22.Text;
                    codigoRaiz = txtRaiz22.Text;
                    break;
                case "txtTratamento21":
                    codigoCoroa = txtCoroa21.Text;
                    codigoRaiz = txtRaiz21.Text;
                    break;
            }

            switch (this.txtFocus.Name)
            {
                case "txtRaiz28":
                    codigoCoroa = txtCoroa28.Text;
                    break;
                case "txtRaiz27":
                    codigoCoroa = txtCoroa27.Text;
                    break;
                case "txtRaiz26":
                    codigoCoroa = txtCoroa26.Text;
                    break;
                case "txtRaiz25":
                    codigoCoroa = txtCoroa25.Text;
                    break;
                case "txtRaiz24":
                    codigoCoroa = txtCoroa24.Text;
                    break;
                case "txtRaiz23":
                    codigoCoroa = txtCoroa23.Text;
                    break;
                case "txtRaiz22":
                    codigoCoroa = txtCoroa22.Text;
                    break;
                case "txtRaiz21":
                    codigoCoroa = txtCoroa21.Text;
                    break;
            }

            this.HabilitaBotoes(false);

            if (codigoCoroa == "1" || codigoCoroa == "2" || codigoCoroa == "B" || codigoCoroa == "C")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "3" || codigoCoroa == "D")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0" || codigoRaiz == "8")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else
                    btnP.Enabled = true;
            }
            else if (codigoCoroa == "4" || codigoCoroa == "5" || codigoCoroa == "8" || codigoCoroa == "E")
            {
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
            }
            else if (codigoCoroa == "6" || codigoCoroa == "F")
            {
                btn0.Enabled = true;
                btn9.Enabled = true;
                if (codigoRaiz == "0")
                {
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "1" || codigoRaiz == "2")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                }
                else if (codigoRaiz == "3")
                {
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btnP.Enabled = true;
                }
                else if (codigoRaiz == "7")
                {
                    btn0.Enabled = true;
                    btn1.Enabled = true;
                    btn2.Enabled = true;
                    btn3.Enabled = true;
                    btn4.Enabled = true;
                    btn5.Enabled = true;
                    btn6.Enabled = true;
                    btn7.Enabled = true;
                    btn8.Enabled = true;
                    btn9.Enabled = true;
                    btnA.Enabled = true;
                    btnB.Enabled = true;
                    btnC.Enabled = true;
                    btnD.Enabled = true;
                    btnE.Enabled = true;
                    btnF.Enabled = true;
                    btnP.Enabled = true;
                }
            }
            else if (codigoCoroa == "7" || codigoCoroa == "G")
            {
                btn0.Enabled = true;
                btn1.Enabled = true;
                btn2.Enabled = true;
                btn3.Enabled = true;
                btn4.Enabled = true;
                btn5.Enabled = true;
                btn6.Enabled = true;
                btn7.Enabled = true;
                btn8.Enabled = true;
                btn9.Enabled = true;
                btnA.Enabled = true;
                btnB.Enabled = true;
                btnC.Enabled = true;
                btnD.Enabled = true;
                btnE.Enabled = true;
                btnF.Enabled = true;
                btnP.Enabled = true;
            }
        }

        #endregion

        #region Eventos
        private void btn_Click(object sender, EventArgs e)
        {
            base.Button_Click(sender, e);
        }

        private void txt_GotFocus(object sender, EventArgs e)
        {
            base.TextBoxGotFocus(sender, e);

            if (Campos[this.txtFocus.Name] == TipoCampo.Coroa)
            {
                this.HabilitaBotoes(true);
                this.btnP.Enabled = false;
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Raiz)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoRaiz();
            }
            else if (Campos[this.txtFocus.Name] == TipoCampo.Tratamento)
            {
                this.HabilitaBotoes(false);
                ValidacaoCodigoTratamento();
            }
        }

        private void btnLimpar_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Tem certeza que deseja Limpar esta Ficha?",
                                "Atenção",
                                MessageBoxButtons.OKCancel,
                                MessageBoxIcon.Question,
                                MessageBoxDefaultButton.Button2) == DialogResult.OK)
            {
                txtCoroa28.Text = "0";
                txtCoroa27.Text = "0";
                txtCoroa26.Text = "0";
                txtCoroa25.Text = "0";
                txtCoroa24.Text = "0";
                txtCoroa23.Text = "0";
                txtCoroa22.Text = "0";
                txtCoroa21.Text = "0";
                txtRaiz28.Text = "0";
                txtRaiz27.Text = "0";
                txtRaiz26.Text = "0";
                txtRaiz25.Text = "0";
                txtRaiz24.Text = "0";
                txtRaiz23.Text = "0";
                txtRaiz22.Text = "0";
                txtRaiz21.Text = "0";
                txtTratamento28.Text = "0";
                txtTratamento27.Text = "0";
                txtTratamento26.Text = "0";
                txtTratamento25.Text = "0";
                txtTratamento24.Text = "0";
                txtTratamento23.Text = "0";
                txtTratamento22.Text = "0";
                txtTratamento21.Text = "0";
            }
        }

        private void btnProximo_Click(object sender, EventArgs e)
        {
            //Dente 21_61
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_21_61.Coroa = txtCoroa21.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_21_61.Raiz = txtRaiz21.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_21_61.Tratamento = txtTratamento21.Text;
            //Dente 22_62
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_22_62.Coroa = txtCoroa22.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_22_62.Raiz = txtRaiz22.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_22_62.Tratamento = txtTratamento22.Text;
            //Dente 23_63
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_23_63.Coroa = txtCoroa23.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_23_63.Raiz = txtRaiz23.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_23_63.Tratamento = txtTratamento23.Text;
            //Dente 24_64
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_24_64.Coroa = txtCoroa24.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_24_64.Raiz = txtRaiz24.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_24_64.Tratamento = txtTratamento24.Text;
            //Dente 25_65
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_25_65.Coroa = txtCoroa25.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_25_65.Raiz = txtRaiz25.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_25_65.Tratamento = txtTratamento25.Text;
            //Dente 26
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_26.Coroa = txtCoroa26.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_26.Raiz = txtRaiz26.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_26.Tratamento = txtTratamento26.Text;
            //Dente 27
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_27.Coroa = txtCoroa27.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_27.Raiz = txtRaiz27.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_27.Tratamento = txtTratamento27.Text;
            //Dente 28
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_28.Coroa = txtCoroa28.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_28.Raiz = txtRaiz28.Text;
            ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_28.Tratamento = txtTratamento28.Text;

            ControleFormularios.MostraProximaFicha();
        }

        private void btnVoltar_Click(object sender, EventArgs e)
        {
            ControleFormularios.MostraFichaAnterior();
        }

        public override void MostraFormulario()
        {
            txtCoroa21.Focus();

            //Dente 21_61
            txtCoroa21.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_21_61.Coroa;
            txtRaiz21.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_21_61.Raiz;
            txtTratamento21.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_21_61.Tratamento;
            //Dente 22_62
            txtCoroa22.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_22_62.Coroa;
            txtRaiz22.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_22_62.Raiz;
            txtTratamento22.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_22_62.Tratamento;
            //Dente 23_63
            txtCoroa23.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_23_63.Coroa;
            txtRaiz23.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_23_63.Raiz;
            txtTratamento23.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_23_63.Tratamento;
            //Dente 24_64
            txtCoroa24.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_24_64.Coroa;
            txtRaiz24.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_24_64.Raiz;
            txtTratamento24.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_24_64.Tratamento;
            //Dente 25_65
            txtCoroa25.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_25_65.Coroa;
            txtRaiz25.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_25_65.Raiz;
            txtTratamento25.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_25_65.Tratamento;
            //Dente 26
            txtCoroa26.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_26.Coroa;
            txtRaiz26.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_26.Raiz;
            txtTratamento26.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_26.Tratamento;
            //Dente 27
            txtCoroa27.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_27.Coroa;
            txtRaiz27.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_27.Raiz;
            txtTratamento27.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_27.Tratamento;
            //Dente 28
            txtCoroa28.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_28.Coroa;
            txtRaiz28.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_28.Raiz;
            txtTratamento28.Text = ControleDados.FichaDOHS.AvaliacaoClinica.CondicaoDentaria.dente_28.Tratamento;

            base.MostraFormulario();
        }
        #endregion       
    }
}